import { Module, Global } from '@nestjs/common';
import { AuthService } from './auth.service';
import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AdminEntity } from 'src/admin/admin.entity';
import { JwtStrategy } from './jwtStrategy';

@Global()
@Module({
  imports: [
    TypeOrmModule.forFeature([AdminEntity]),
    JwtModule.register({
      secret: '345edrfertertert',
      signOptions: {
        expiresIn: '2 days'
      }
    }),

    // PassportModule，这个模块是用来验证用户身份用的，它来自 @nestjs/passport 。这个模块集成使用了 Passport.js，这个东西提供了很多验证用户身份的方法，其中就包括 JWT 这种方法，在我们的应用里可以使用它提供的方法验证请求用户的身份。
    PassportModule.register({
      defaultStrategy: 'jwt',
    })
  ],
  providers: [AuthService, JwtStrategy],
  exports: [AuthService],
})
export class AuthModule {}
